package org.dxy.infrastructure.persistent.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.dxy.infrastructure.persistent.po.query.MaterialGroupViewPo;

import java.util.List;

/**
 * 物料群组视图服务接口
 * @author dxy
 * @createTime 2025/9/5
 */
public interface MaterialGroupViewService extends IService<MaterialGroupViewPo> {

    /**
     * 根据群组编码检查是否存在
     */
    boolean existsByGroupCode(String groupCode);

    /**
     * 根据父群组ID查询子群组列表
     */
    List<MaterialGroupViewPo> getByParentGroupId(Long parentGroupId);

    /**
     * 查询根级群组列表（没有父群组的群组）
     */
    List<MaterialGroupViewPo> getRootGroups();

    /**
     * 根据群组类型查询群组列表
     */
    List<MaterialGroupViewPo> getByGroupType(String groupType);

    /**
     * 查询启用状态的群组列表
     */
    List<MaterialGroupViewPo> getActiveGroups();

    /**
     * 统计子群组数量
     */
    long countByParentGroupId(Long parentGroupId);
}